WebWork 2 : Using Checkboxes - EditAction.java
This page last changed on Jun 18, 2004 by plightbo.
package cash.action; import org.apache.log4j.Logger; import cash.config.ConfigManager; import cash.model.User; import cash.util.HibernateUtil; import cash.validator.PasswordFormatValidator; import net.sf.hibernate.LockMode; /** * Edit a user * @author Joel Hockey * @version $Id: Using\040Checkboxes\040-\040EditAction.java.html,v 1.1 2004/12/14 22:47:43 plightbo Exp $ */ public class EditAction extends HibernateAction { private static final Logger LOG = Logger.getLogger(EditAction.class); private User m_user = new User(); private String m_repeatPassword; /** return user to be edited. */ public User getUser() { return m_user; } /** @param pwd repeat of password */ public void setRepeatPassword(String pwd) { m_repeatPassword = pwd; } /** @return repeat password */ public String getRepeatPassword() { return m_repeatPassword; } /** override super */ public String execute() throws Exception { LOG.debug("EditAction started"); // get original user from session, check that password is valid, update and save. User u = (User)get("user"); HibernateUtil.currentSession().lock(u, LockMode.NONE); // check that password has actually changed before updating if (!PasswordFormatValidator.PASSWORD_MASK.equals(m_user.getPassword())) { if (!u.changePassword(m_user.getPassword())) { addFieldError("user.password", "password must be different to previous " + ConfigManager.getConfig().getUser().getNoRepeatHistory() + " passwords"); return INPUT; } } m_user.copy(u); HibernateUtil.currentSession().save(u); User loginUser = (User)get(LoginAction.LOGIN_USER); if (u.getId() == loginUser.getId()) { set(LoginAction.LOGIN_USER, u); } return SUCCESS; } } |
Document generated by Confluence on Dec 14, 2004 16:36 |